<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>案件管理-处罚决定书清册</title>
    <link rel="stylesheet" href="/layui/v11/css/layui.css" media="all">
    <link rel="stylesheet" href="/css/custom.form.css">
</head>
<body>
<div class="layui-fluid">
    <div class="layui-row layui-col-space15">
        <div class="layui-col-md12">
            <div class="layui-card">
                <div class="layui-card-header"></div>
                <div class="layui-card-body">
                    <form id="searchForm" class="layui-form" method="post">
                        <div class="layui-form-item">
                            <div class="layui-input-inline">
                                <input type="text" id="jcajbh" name="jcajbh" class="layui-input"
                                       autocomplete="off" placeholder="请输入案件编号">
                            </div>
                            <div class="layui-input-inline">
                                <input type="text" id="nsrsbh" name="nsrsbh" class="layui-input"
                                       autocomplete="off" placeholder="请输入纳税人识别号">
                            </div>
                            <div class="layui-input-inline">
                                <input type="text" id="nsrmc" name="nsrmc" class="layui-input"
                                       autocomplete="off" placeholder="请输入纳税人名称">
                            </div>
                            <div class="layui-input-inline">
                                <input type="text" readonly id="time" name="time" class="layui-input"
                                       placeholder="日期">
                            </div>
                            <div class="layui-input-inline">
                                <input type="text" readonly id="xhTime" name="xhTime" class="layui-input"
                                       placeholder="销号日期">
                            </div>
                            <!-- 按钮无需name属性 -->
                            <div class="layui-input-inline" style="width: auto;">
                                <button type="button" class="layui-btn" id="search">查询</button>
                                <button type="button" class="layui-btn" id="searchByNsrsbh">
                                    批量导入纳税人识别号查询
                                </button>
                                <button type="button" class="layui-btn" lay-submit="" lay-filter="reset">重置</button>
                                <button type="button" class="layui-btn" id="export">导出</button>
                            </div>
                        </div>
                    </form>
                    <table class="layui-hide" id="cljdsTable" lay-filter="cljdsTable"></table>
                </div>
            </div>
        </div>
    </div>
</div>
<script src="/layui/v11/layui.js"></script>
<script src="/js/core.util.js"></script>
<script th:inline="none">
    //获取token
    let token = CoreUtil.getData("access_token");
    //地址栏转义token中的#号
    let tokenQuery = token.replace("#", "%23");
    let tableIns1;
    let table = layui.table;
    let form = layui.form;
    let layer = layui.layer;
    let $ = jQuery = layui.jquery;
    let laydate = layui.laydate;
    let tree = layui.tree;
    let startTime = null;
    let endTime = null;
    let xh_startTime = null;
    let xh_endTime = null;
    let nsrsbhList = null;
    layui.config({
        base: '/'
    }).extend({
        excel: 'layui/excel'         // 对应文件 /layui/excel.js
    }).use(['table', 'laypage', 'layer', 'laydate', 'form','excel'], function () {
        let excel = layui.excel;
        // 默认科室下拉选
        tableIns1 = table.render({
            elem: '#cljdsTable'
            , loading: true
            , page: true //开启分页
            , where: {
                "lx": "2"
            }
            , contentType: 'application/json'
            , headers: {"authorization": token}
            , url: '/attention/attentionMgr/queryCfjdsTable' //数据接口
            , method: 'POST'
            , parseData: function (res) { //将原始数据解析成 table 组件所规定的数据
                return {
                    "code": res.code, //解析接口状态
                    "msg": res.msg, //解析提示文本
                    "count": CoreUtil.isEmpty(res.data) ? 0 : res.data.total, //解析数据长度
                    "data": CoreUtil.isEmpty(res.data) ? null : res.data.records //解析数据列表
                }
            }
            , cols: [
                [
                    // {type: 'checkbox', fixed: 'left'},
                    {field: 'uuid', title: '金三案件信息表主键', width: 0, hide: true},
                    {field: 'jcajbh', title: '案件编号', width: 180, align: "center", sort: true},
                    {field: 'nsrsbh', title: '纳税人识别号', width: 180, align: "center", sort: true},
                    {field: 'nsrmc', title: '纳税人名称', width: 260, align: "center", sort: true},

                    {
                        field: 'wszzrq', title: '日期', width: 120, align: "center", sort: true, templet: function (d) {
                            if (!d.wszzrq) {
                                return '';
                            }
                            return layui.util.toDateString(d.wszzrq, 'yyyy-MM-dd');
                        }
                    },
                    {
                        field: 'xhrq',
                        title: '销号日期',
                        width: 120,
                        align: "center",
                        sort: true,
                        templet: function (d) {
                            if (!d.xhrq) {
                                return '';
                            }
                            return layui.util.toDateString(d.xhrq, 'yyyy-MM-dd');
                        }
                    },
                    {
                        field: 'sdrq',
                        title: '送达日期',
                        width: 120,
                        align: "center",
                        sort: true,
                        templet: function (d) {
                            if (!d.sdrq) {
                                return '';
                            }
                            return layui.util.toDateString(d.sdrq, 'yyyy-MM-dd');
                        }
                    },
                    {field: 'sdfs', title: '送达方式', width: 120, align: "center", sort: true},
                    {field: 'jcfwhnr', title: '稽查范围', width: 300, align: "center", sort: true},
                    {field: 'wfss', title: '违法事实', width: 300, align: "center", sort: true},
                    {field: 'yjfkje', title: '移交反馈金额', width: 160, align: "center", sort: true},
                    {field: 'wfsd', title: '违法所得', width: 220, align: "center", sort: true},
                    {field: 'cfjd', title: '处罚决定', width: 300, align: "center", sort: true},
                    {field: 'swxzcfyj', title: '处罚意见', width: 300, align: "center", sort: true},
                    {field: 'lrrDm', title: '录入人', width: 180, align: "center", sort: true},
                    {
                        field: 'lrrq',
                        title: '录入日期',
                        width: 120,
                        align: "center",
                        sort: true,
                        templet: function (d) {
                            if (!d.lrrq) {
                                return '';
                            }
                            return layui.util.toDateString(d.lrrq, 'yyyy-MM-dd');
                        }
                    },
                    {field: 'swjgDm', title: '税务机关名称', width: 220, align: "center", sort: true},
                    {
                        field: 'sdztDm',
                        title: '是否有效',
                        width: 120,
                        align: "center",
                        sort: true,
                        templet: function (d) {
                            return d.sdztDm === "03" ? '有效' : '无效';
                        }
                    }
                ]
            ]
            , toolbar: '#toolbar1'
        });
        //日期
        laydate.render({
            elem: '#time'
            , type: 'date'
            , range: '~'
            , done: function (value) {
                if (value !== null && value !== undefined && value !== "") {
                    startTime = value.split("~")[0];
                    endTime = value.split("~")[1];
                } else {
                    startTime = null;
                    endTime = null;
                }
            }
        });
        //销号日期
        laydate.render({
            elem: '#xhTime'
            , type: 'date'
            , range: '~'
            , done: function (value) {
                if (value !== null && value !== undefined && value !== "") {
                    xh_startTime = value.split("~")[0];
                    xh_endTime = value.split("~")[1];
                } else {
                    xh_startTime = null;
                    xh_endTime = null;
                }
            }
        });
        //页面查询方法
        $("#search").click(function () {
            nsrsbhList = null;
            let whereParams = {
                "jcajbh": $("#jcajbh").val(),
                "nsrsbh": $("#nsrsbh").val(),
                "nsrmc": $("#nsrmc").val(),
                "startTime": startTime,
                "endTime": endTime,
                "xhStartTime": xh_startTime,
                "xhEndTime": xh_endTime,
                "nsrsbhList": nsrsbhList
            };
            tableIns1.reload({
                contentType: 'application/json',
                method: 'POST',
                headers: {"authorization": token},
                url: '/attention/attentionMgr/queryCfjdsTable',  // ✅ 恢复成你最初的 URL
                where: whereParams,
                page: {
                    curr: 1
                }
            });
        })
        //根据纳税人识别号查询
        $("#searchByNsrsbh").click(function () {
            const input = $('<input type="file" accept=".xls,.xlsx">').css('display', 'none');
            input.on('change', function () {
                const file = this.files[0];
                if (!file) return;

                const formData = new FormData();
                formData.append("file", file);

                $.ajax({
                    url: '/ajgl/cfjds/importCfjdsData',
                    type: 'POST',
                    data: formData,
                    headers: {"authorization": token},
                    processData: false,
                    contentType: false,
                    beforeSend: function () {
                        layer.load();
                    },
                    success: function (res) {
                        nsrsbhList = res.data.nsrsbhList;
                        tableIns1.reload({
                            contentType: 'application/json',
                            data: res.data.pageData.records, // 重新渲染数据
                            url: "",
                            page: {
                                curr: 1
                            }
                        });
                        layer.closeAll('loading'); //关闭loaWding
                    },
                    error: function (res) {
                        layer.closeAll('loading');
                        layer.alert(res.msg);
                    }
                });
            });
            // 添加并触发
            $('body').append(input);
            input.trigger('click');
        })
        //页面查询条件重置按钮
        form.on('submit(reset)', function () {
            nsrsbhList = null;
            document.getElementById('searchForm').reset(); // 原生重置表单
            $('#jcajbh').val(''); // 清空输入框
            $('#nsrsbh').val(''); // 清空输入框
            $('#nsrmc').val(''); // 清空输入框
            $('#time').val(''); // 清空输入框
            startTime = null; // 重置开始时间
            endTime = null; // 重置结束时间
            $('#xhTime').val(''); // 清空输入框
            xh_startTime = null;
            xh_endTime = null;
            form.render(); // 重新渲染 Layui 的动态组件
        })
        //导出
        $("#export").click(function () {
            layer.confirm('确定导出所有数据?', {icon: 3, title: '提示'}, function (index) {
                let mapArr = {
                    "jcajbh": $("#jcajbh").val(),
                    "nsrsbh": $("#nsrsbh").val(),
                    "nsrmc": $("#nsrmc").val(),
                    "startTime": startTime,
                    "endTime": endTime,
                    "xhStartTime": xh_startTime,
                    "xhEndTime": xh_endTime,
                    "sdztDm": $("#sdztDm").val(),
                    "nsrsbhList": nsrsbhList
                };
                CoreUtil.sendPost("/attention/attentionMgr/exportCfjdsTable", mapArr, function (res) {
                    if (res.code === 0) {
                        const data = res.data;
                        if (!CoreUtil.isEmpty(data)) {
                            //全部导出
                            table.exportFile(tableIns1.config.id, data, 'xlsx');
                            //导出时阻止页面刷新
                            $(".layui-form").submit(function (e) {
                                e.preventDefault();
                            })
                        } else {
                            layer.alert('未查询到需要导出的数据！', {icon: 2});
                        }
                    }

                    // if (res.code === 0) {
                    //     let data = res.data;
                    //     if (!CoreUtil.isEmpty(data)) {
                    //         data = excel.filterExportData(data, {
                    //             jcajbh: 'jcajbh',
                    //             nsrsbh: 'nsrsbh',
                    //             nsrmc: 'nsrmc',
                    //             wszzrq: 'wszzrq',
                    //             xhrq: 'xhrq',
                    //             sdrq: 'sdrq',
                    //             sdfs: 'sdfs',
                    //             jcfwhnr: 'jcfwhnr',
                    //             wfss: 'wfss',
                    //             yjfkje: 'yjfkje',
                    //             wfsd: 'wfsd',
                    //             cfjd: 'cfjd',
                    //             swxzcfyj: 'swxzcfyj',
                    //             lrrDm: 'lrrDm',
                    //             lrrq: 'lrrq',
                    //             swjgDm: 'swjgDm',
                    //             sdztDm: 'sdztDm',
                    //         })
                    //
                    //         // ✅ 在加表头之前，把是否有效转成中文文本
                    //         data = data.map(item => ({
                    //             ...item,
                    //             sdztDm: item.sdztDm === "03" ? "有效" : "无效"
                    //         }));
                    //
                    //         //重点2！！！一般都需要加一个表头，表头的键名顺序需要与最终导出的数据一致
                    //         data.unshift({
                    //             jcajbh: '案件编号',
                    //             nsrsbh: '纳税人识别号',
                    //             nsrmc: '纳税人名称',
                    //             wszzrq: '日期',
                    //             xhrq: '销号日期',
                    //             sdrq: '送达日期',
                    //             sdfs: '送达方式',
                    //             jcfwhnr: '稽查范围',
                    //             wfss: '违法事实',
                    //             yjfkje: '移交反馈金额',
                    //             wfsd: '违法所得',
                    //             cfjd: '处罚决定',
                    //             swxzcfyj: '处罚意见',
                    //             lrrDm: '录入人',
                    //             lrrq: '录入日期',
                    //             swjgDm: '税务机关名称',
                    //             sdztDm: '是否有效',
                    //         });
                    //         // 3. 执行导出函数，系统会弹出弹框
                    //         excel.exportExcel({
                    //             sheet1: data
                    //         }, '处罚决定书清册.xlsx', 'xlsx');
                    //         //导出时阻止页面刷新
                    //         $(".layui-form").submit(function (e) {
                    //             e.preventDefault();
                    //         })
                    //     } else {
                    //         layer.alert('未查询到需要导出的数据！', {icon: 2});
                    //     }
                    // }
                });
                layer.close(index);
            });
            return false; // ✅ 用这个阻止默认行为
        })
    });
</script>
</body>

</html>